Termination w.r.t. Q of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.


QTRS
  ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.

Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

PROPER(f(X1, X2)) → PROPER(X2)
TOP(mark(X)) → PROPER(X)
ACTIVE(f(X1, X2)) → F(active(X1), X2)
TOP(mark(X)) → TOP(proper(X))
ACTIVE(f(X, X)) → F(a, b)
F(mark(X1), X2) → F(X1, X2)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
F(ok(X1), ok(X2)) → F(X1, X2)
PROPER(f(X1, X2)) → F(proper(X1), proper(X2))
TOP(ok(X)) → ACTIVE(X)
TOP(ok(X)) → TOP(active(X))
PROPER(f(X1, X2)) → PROPER(X1)

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ DependencyPairsProof
QDP
      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

PROPER(f(X1, X2)) → PROPER(X2)
TOP(mark(X)) → PROPER(X)
ACTIVE(f(X1, X2)) → F(active(X1), X2)
TOP(mark(X)) → TOP(proper(X))
ACTIVE(f(X, X)) → F(a, b)
F(mark(X1), X2) → F(X1, X2)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
F(ok(X1), ok(X2)) → F(X1, X2)
PROPER(f(X1, X2)) → F(proper(X1), proper(X2))
TOP(ok(X)) → ACTIVE(X)
TOP(ok(X)) → TOP(active(X))
PROPER(f(X1, X2)) → PROPER(X1)

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 4 SCCs with 5 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
QDP
            ↳ UsableRulesProof
          ↳ QDP
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

F(mark(X1), X2) → F(X1, X2)
F(ok(X1), ok(X2)) → F(X1, X2)

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
            ↳ UsableRulesProof
QDP
                ↳ QDPSizeChangeProof
          ↳ QDP
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

F(mark(X1), X2) → F(X1, X2)
F(ok(X1), ok(X2)) → F(X1, X2)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
QDP
            ↳ UsableRulesProof
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

PROPER(f(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → PROPER(X1)

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
QDP
                ↳ QDPSizeChangeProof
          ↳ QDP
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

PROPER(f(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → PROPER(X1)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
QDP
            ↳ UsableRulesProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(f(X1, X2)) → ACTIVE(X1)

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
QDP
                ↳ QDPSizeChangeProof
          ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(f(X1, X2)) → ACTIVE(X1)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
QDP
            ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

TOP(mark(X)) → TOP(proper(X))
TOP(ok(X)) → TOP(active(X))

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We can use the usable rules and reduction pair processor [15] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its argument. Then, we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
QDP
                ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

TOP(mark(X)) → TOP(proper(X))
TOP(ok(X)) → TOP(active(X))

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule TOP(mark(X)) → TOP(proper(X)) at position [0] we obtained the following new rules:

TOP(mark(f(x0, x1))) → TOP(f(proper(x0), proper(x1)))
TOP(mark(b)) → TOP(ok(b))
TOP(mark(a)) → TOP(ok(a))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
QDP
                    ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

TOP(mark(f(x0, x1))) → TOP(f(proper(x0), proper(x1)))
TOP(mark(b)) → TOP(ok(b))
TOP(mark(a)) → TOP(ok(a))
TOP(ok(X)) → TOP(active(X))

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
QDP
                        ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

TOP(mark(f(x0, x1))) → TOP(f(proper(x0), proper(x1)))
TOP(mark(a)) → TOP(ok(a))
TOP(ok(X)) → TOP(active(X))

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule TOP(ok(X)) → TOP(active(X)) at position [0] we obtained the following new rules:

TOP(ok(b)) → TOP(mark(a))
TOP(ok(f(x0, x0))) → TOP(mark(f(a, b)))
TOP(ok(f(x0, x1))) → TOP(f(active(x0), x1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
QDP
                            ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

TOP(ok(f(x0, x1))) → TOP(f(active(x0), x1))
TOP(ok(f(x0, x0))) → TOP(mark(f(a, b)))
TOP(ok(b)) → TOP(mark(a))
TOP(mark(f(x0, x1))) → TOP(f(proper(x0), proper(x1)))
TOP(mark(a)) → TOP(ok(a))

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 2 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2

Q DP problem:
The TRS P consists of the following rules:

TOP(ok(f(x0, x1))) → TOP(f(active(x0), x1))
TOP(ok(f(x0, x0))) → TOP(mark(f(a, b)))
TOP(mark(f(x0, x1))) → TOP(f(proper(x0), proper(x1)))

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We found the following model for the rules of the TRS R. Interpretation over the domain with elements from 0 to 1.active: 0
a: 1
f: 0
ok: 0
mark: 0
b: 0
TOP: 0
proper: 0
By semantic labelling [33] we obtain the following labelled TRS:Q DP problem:
The TRS P consists of the following rules:

TOP.0(ok.0(f.0-0(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(ok.0(f.1-1(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.1-0(x0, x1))) → TOP.0(f.0-0(active.1(x0), x1))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.1(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(ok.0(f.1-1(x0, x1))) → TOP.0(f.0-1(active.1(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.0(b.) → mark.1(a.)
proper.0(f.1-0(X1, X2)) → f.0-0(proper.1(X1), proper.0(X2))
active.0(f.0-0(X, X)) → mark.0(f.1-0(a., b.))
proper.0(f.0-1(X1, X2)) → f.0-0(proper.0(X1), proper.1(X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.1(a.) → ok.1(a.)
f.0-0(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.1-1(X, X)) → mark.0(f.1-0(a., b.))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
proper.0(b.) → ok.0(b.)
f.0-0(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
proper.0(f.1-1(X1, X2)) → f.0-0(proper.1(X1), proper.1(X2))
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
QDP
                                    ↳ DependencyGraphProof
                                ↳ SemLabProof2

Q DP problem:
The TRS P consists of the following rules:

TOP.0(ok.0(f.0-0(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(ok.0(f.1-1(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.1-0(x0, x1))) → TOP.0(f.0-0(active.1(x0), x1))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.1(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(ok.0(f.1-1(x0, x1))) → TOP.0(f.0-1(active.1(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.0(b.) → mark.1(a.)
proper.0(f.1-0(X1, X2)) → f.0-0(proper.1(X1), proper.0(X2))
active.0(f.0-0(X, X)) → mark.0(f.1-0(a., b.))
proper.0(f.0-1(X1, X2)) → f.0-0(proper.0(X1), proper.1(X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.1(a.) → ok.1(a.)
f.0-0(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.1-1(X, X)) → mark.0(f.1-0(a., b.))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
proper.0(b.) → ok.0(b.)
f.0-0(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
proper.0(f.1-1(X1, X2)) → f.0-0(proper.1(X1), proper.1(X2))
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 2 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                  ↳ QDP
                                    ↳ DependencyGraphProof
QDP
                                        ↳ QDPOrderProof
                                ↳ SemLabProof2

Q DP problem:
The TRS P consists of the following rules:

TOP.0(ok.0(f.0-0(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(ok.0(f.1-1(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.1(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.0(b.) → mark.1(a.)
proper.0(f.1-0(X1, X2)) → f.0-0(proper.1(X1), proper.0(X2))
active.0(f.0-0(X, X)) → mark.0(f.1-0(a., b.))
proper.0(f.0-1(X1, X2)) → f.0-0(proper.0(X1), proper.1(X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.1(a.) → ok.1(a.)
f.0-0(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.1-1(X, X)) → mark.0(f.1-0(a., b.))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
proper.0(b.) → ok.0(b.)
f.0-0(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
proper.0(f.1-1(X1, X2)) → f.0-0(proper.1(X1), proper.1(X2))
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


TOP.0(ok.0(f.1-1(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
The remaining pairs can at least be oriented weakly.

TOP.0(ok.0(f.0-0(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.1(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))
Used ordering: Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(a.) = 0   
POL(active.0(x1)) = 0   
POL(active.1(x1)) = 0   
POL(b.) = 0   
POL(f.0-0(x1, x2)) = x2   
POL(f.0-1(x1, x2)) = 1   
POL(f.1-0(x1, x2)) = x2   
POL(f.1-1(x1, x2)) = 1   
POL(mark.0(x1)) = x1   
POL(mark.1(x1)) = 0   
POL(ok.0(x1)) = x1   
POL(ok.1(x1)) = 1   
POL(proper.0(x1)) = x1   
POL(proper.1(x1)) = 1   

The following usable rules [17] were oriented:

f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
proper.0(b.) → ok.0(b.)
f.0-0(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
proper.0(f.1-1(X1, X2)) → f.0-0(proper.1(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))
f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
proper.0(f.1-0(X1, X2)) → f.0-0(proper.1(X1), proper.0(X2))
proper.0(f.0-1(X1, X2)) → f.0-0(proper.0(X1), proper.1(X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.1(a.) → ok.1(a.)
f.0-0(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                  ↳ QDP
                                    ↳ DependencyGraphProof
                                      ↳ QDP
                                        ↳ QDPOrderProof
QDP
                                            ↳ QDPOrderProof
                                ↳ SemLabProof2

Q DP problem:
The TRS P consists of the following rules:

TOP.0(ok.0(f.0-0(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.1(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.0(b.) → mark.1(a.)
proper.0(f.1-0(X1, X2)) → f.0-0(proper.1(X1), proper.0(X2))
active.0(f.0-0(X, X)) → mark.0(f.1-0(a., b.))
proper.0(f.0-1(X1, X2)) → f.0-0(proper.0(X1), proper.1(X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.1(a.) → ok.1(a.)
f.0-0(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.1-1(X, X)) → mark.0(f.1-0(a., b.))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
proper.0(b.) → ok.0(b.)
f.0-0(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
proper.0(f.1-1(X1, X2)) → f.0-0(proper.1(X1), proper.1(X2))
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


TOP.0(ok.0(f.0-0(x0, x0))) → TOP.0(mark.0(f.1-0(a., b.)))
The remaining pairs can at least be oriented weakly.

TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.1(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))
Used ordering: Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(a.) = 0   
POL(active.0(x1)) = 1 + x1   
POL(active.1(x1)) = 0   
POL(b.) = 0   
POL(f.0-0(x1, x2)) = 1 + x1   
POL(f.0-1(x1, x2)) = 1 + x1   
POL(f.1-0(x1, x2)) = 0   
POL(f.1-1(x1, x2)) = 0   
POL(mark.0(x1)) = 1 + x1   
POL(mark.1(x1)) = 0   
POL(ok.0(x1)) = 1 + x1   
POL(ok.1(x1)) = 0   
POL(proper.0(x1)) = 1 + x1   
POL(proper.1(x1)) = 0   

The following usable rules [17] were oriented:

active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
proper.0(b.) → ok.0(b.)
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
f.0-0(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.1-1(X1, X2)) → f.0-0(proper.1(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))
f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.0(b.) → mark.1(a.)
proper.0(f.1-0(X1, X2)) → f.0-0(proper.1(X1), proper.0(X2))
active.0(f.0-0(X, X)) → mark.0(f.1-0(a., b.))
proper.0(f.0-1(X1, X2)) → f.0-0(proper.0(X1), proper.1(X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.1(a.) → ok.1(a.)
f.0-0(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.1-1(X, X)) → mark.0(f.1-0(a., b.))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                  ↳ QDP
                                    ↳ DependencyGraphProof
                                      ↳ QDP
                                        ↳ QDPOrderProof
                                          ↳ QDP
                                            ↳ QDPOrderProof
QDP
                                ↳ SemLabProof2

Q DP problem:
The TRS P consists of the following rules:

TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.0-0(proper.1(x0), proper.1(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.0(b.) → mark.1(a.)
proper.0(f.1-0(X1, X2)) → f.0-0(proper.1(X1), proper.0(X2))
active.0(f.0-0(X, X)) → mark.0(f.1-0(a., b.))
proper.0(f.0-1(X1, X2)) → f.0-0(proper.0(X1), proper.1(X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.1(a.) → ok.1(a.)
f.0-0(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.1-1(X, X)) → mark.0(f.1-0(a., b.))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
proper.0(b.) → ok.0(b.)
f.0-0(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
proper.0(f.1-1(X1, X2)) → f.0-0(proper.1(X1), proper.1(X2))
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
As can be seen after transforming the QDP problem by semantic labelling [33] and then some rule deleting processors, only certain labelled rules and pairs can be used. Hence, we only have to consider all unlabelled pairs and rules (without the decreasing rules for quasi-models).

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
QDP
                                    ↳ SemLabProof

Q DP problem:
The TRS P consists of the following rules:

TOP(ok(f(x0, x1))) → TOP(f(active(x0), x1))
TOP(mark(f(x0, x1))) → TOP(f(proper(x0), proper(x1)))

The TRS R consists of the following rules:

active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We found the following model for the rules of the TRS R. Interpretation over the domain with elements from 0 to 1.active: 0
a: 0
f: 0
ok: x0
mark: 0
b: 1
TOP: 0
proper: x0
By semantic labelling [33] we obtain the following labelled TRS:Q DP problem:
The TRS P consists of the following rules:

TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.1-1(proper.1(x0), proper.1(x1)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-1(proper.0(x0), proper.1(x1)))
TOP.0(ok.0(f.1-0(x0, x1))) → TOP.0(f.0-0(active.1(x0), x1))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.1-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.1-1(x0, x1))) → TOP.0(f.0-1(active.1(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

proper.1(b.) → ok.1(b.)
f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.1(b.) → mark.0(a.)
f.1-1(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
f.1-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-1(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.0-0(X, X)) → mark.0(f.0-1(a., b.))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
proper.0(f.1-0(X1, X2)) → f.1-0(proper.1(X1), proper.0(X2))
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
active.0(f.1-1(X, X)) → mark.0(f.0-1(a., b.))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
proper.0(f.1-1(X1, X2)) → f.1-1(proper.1(X1), proper.1(X2))
proper.0(a.) → ok.0(a.)
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.0-1(X1, X2)) → f.0-1(proper.0(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
                                  ↳ QDP
                                    ↳ SemLabProof
QDP
                                        ↳ UsableRulesReductionPairsProof

Q DP problem:
The TRS P consists of the following rules:

TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.1-1(proper.1(x0), proper.1(x1)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-1(proper.0(x0), proper.1(x1)))
TOP.0(ok.0(f.1-0(x0, x1))) → TOP.0(f.0-0(active.1(x0), x1))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.1-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.1-1(x0, x1))) → TOP.0(f.0-1(active.1(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

proper.1(b.) → ok.1(b.)
f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
active.1(b.) → mark.0(a.)
f.1-1(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
f.1-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-1(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
active.0(f.0-0(X, X)) → mark.0(f.0-1(a., b.))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
proper.0(f.1-0(X1, X2)) → f.1-0(proper.1(X1), proper.0(X2))
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
active.0(f.1-1(X, X)) → mark.0(f.0-1(a., b.))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
proper.0(f.1-1(X1, X2)) → f.1-1(proper.1(X1), proper.1(X2))
proper.0(a.) → ok.0(a.)
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
proper.0(f.0-1(X1, X2)) → f.0-1(proper.0(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [15] with a polynomial ordering [25], all dependency pairs and the corresponding usable rules [17] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

No dependency pairs are removed.

The following rules are removed from R:

f.0-1(mark.1(X1), X2) → mark.0(f.1-1(X1, X2))
f.0-0(mark.1(X1), X2) → mark.0(f.1-0(X1, X2))
Used ordering: POLO with Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(a.) = 0   
POL(active.0(x1)) = x1   
POL(active.1(x1)) = x1   
POL(b.) = 0   
POL(f.0-0(x1, x2)) = x1 + x2   
POL(f.0-1(x1, x2)) = x1 + x2   
POL(f.1-0(x1, x2)) = x1 + x2   
POL(f.1-1(x1, x2)) = x1 + x2   
POL(mark.0(x1)) = x1   
POL(mark.1(x1)) = x1   
POL(ok.0(x1)) = x1   
POL(ok.1(x1)) = x1   
POL(proper.0(x1)) = x1   
POL(proper.1(x1)) = x1   



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
                                  ↳ QDP
                                    ↳ SemLabProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
QDP
                                            ↳ RuleRemovalProof

Q DP problem:
The TRS P consists of the following rules:

TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.1-1(proper.1(x0), proper.1(x1)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-1(proper.0(x0), proper.1(x1)))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(ok.0(f.1-0(x0, x1))) → TOP.0(f.0-0(active.1(x0), x1))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.1-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))
TOP.0(ok.0(f.1-1(x0, x1))) → TOP.0(f.0-1(active.1(x0), x1))

The TRS R consists of the following rules:

active.0(f.0-0(X, X)) → mark.0(f.0-1(a., b.))
active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
active.0(f.1-1(X, X)) → mark.0(f.0-1(a., b.))
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
f.0-1(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
f.1-1(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.1(b.) → mark.0(a.)
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
f.1-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.0(f.1-0(X1, X2)) → f.1-0(proper.1(X1), proper.0(X2))
proper.0(f.1-1(X1, X2)) → f.1-1(proper.1(X1), proper.1(X2))
proper.0(a.) → ok.0(a.)
proper.0(f.0-1(X1, X2)) → f.0-1(proper.0(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))
proper.1(b.) → ok.1(b.)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

TOP.0(ok.0(f.1-1(x0, x1))) → TOP.0(f.0-1(active.1(x0), x1))

Strictly oriented rules of the TRS R:

active.0(f.0-0(X, X)) → mark.0(f.0-1(a., b.))
active.0(f.1-1(X1, X2)) → f.0-1(active.1(X1), X2)
active.0(f.1-1(X, X)) → mark.0(f.0-1(a., b.))

Used ordering: POLO with Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(a.) = 0   
POL(active.0(x1)) = x1   
POL(active.1(x1)) = x1   
POL(b.) = 0   
POL(f.0-0(x1, x2)) = 1 + x1 + x2   
POL(f.0-1(x1, x2)) = x1 + x2   
POL(f.1-0(x1, x2)) = 1 + x1 + x2   
POL(f.1-1(x1, x2)) = 1 + x1 + x2   
POL(mark.0(x1)) = x1   
POL(ok.0(x1)) = x1   
POL(ok.1(x1)) = x1   
POL(proper.0(x1)) = x1   
POL(proper.1(x1)) = x1   



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
                                  ↳ QDP
                                    ↳ SemLabProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ QDP
                                            ↳ RuleRemovalProof
QDP
                                                ↳ RuleRemovalProof

Q DP problem:
The TRS P consists of the following rules:

TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.1-1(proper.1(x0), proper.1(x1)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-1(proper.0(x0), proper.1(x1)))
TOP.0(ok.0(f.1-0(x0, x1))) → TOP.0(f.0-0(active.1(x0), x1))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.1-0(proper.1(x0), proper.0(x1)))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
f.0-1(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
f.1-1(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
active.1(b.) → mark.0(a.)
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
f.1-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.0(f.1-0(X1, X2)) → f.1-0(proper.1(X1), proper.0(X2))
proper.0(f.1-1(X1, X2)) → f.1-1(proper.1(X1), proper.1(X2))
proper.0(a.) → ok.0(a.)
proper.0(f.0-1(X1, X2)) → f.0-1(proper.0(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))
proper.1(b.) → ok.1(b.)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

TOP.0(ok.0(f.1-0(x0, x1))) → TOP.0(f.0-0(active.1(x0), x1))

Strictly oriented rules of the TRS R:

active.0(f.1-0(X1, X2)) → f.0-0(active.1(X1), X2)
active.1(b.) → mark.0(a.)

Used ordering: POLO with Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(a.) = 0   
POL(active.0(x1)) = x1   
POL(active.1(x1)) = x1   
POL(b.) = 1   
POL(f.0-0(x1, x2)) = x1 + x2   
POL(f.0-1(x1, x2)) = x1 + x2   
POL(f.1-0(x1, x2)) = 1 + x1 + x2   
POL(f.1-1(x1, x2)) = x1 + x2   
POL(mark.0(x1)) = x1   
POL(ok.0(x1)) = x1   
POL(ok.1(x1)) = x1   
POL(proper.0(x1)) = x1   
POL(proper.1(x1)) = x1   



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
                                  ↳ QDP
                                    ↳ SemLabProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ QDP
                                            ↳ RuleRemovalProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
QDP
                                                    ↳ RuleRemovalProof

Q DP problem:
The TRS P consists of the following rules:

TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.1-1(proper.1(x0), proper.1(x1)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-1(proper.0(x0), proper.1(x1)))
TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.1-0(proper.1(x0), proper.0(x1)))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))

The TRS R consists of the following rules:

active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
f.0-1(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
f.1-1(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
f.1-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.0(f.1-0(X1, X2)) → f.1-0(proper.1(X1), proper.0(X2))
proper.0(f.1-1(X1, X2)) → f.1-1(proper.1(X1), proper.1(X2))
proper.0(a.) → ok.0(a.)
proper.0(f.0-1(X1, X2)) → f.0-1(proper.0(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))
proper.1(b.) → ok.1(b.)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

TOP.0(mark.0(f.1-1(x0, x1))) → TOP.0(f.1-1(proper.1(x0), proper.1(x1)))
TOP.0(mark.0(f.0-1(x0, x1))) → TOP.0(f.0-1(proper.0(x0), proper.1(x1)))
TOP.0(mark.0(f.1-0(x0, x1))) → TOP.0(f.1-0(proper.1(x0), proper.0(x1)))
TOP.0(mark.0(f.0-0(x0, x1))) → TOP.0(f.0-0(proper.0(x0), proper.0(x1)))


Used ordering: POLO with Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(a.) = 0   
POL(active.0(x1)) = x1   
POL(b.) = 0   
POL(f.0-0(x1, x2)) = x1 + x2   
POL(f.0-1(x1, x2)) = x1 + x2   
POL(f.1-0(x1, x2)) = x1 + x2   
POL(f.1-1(x1, x2)) = x1 + x2   
POL(mark.0(x1)) = 1 + x1   
POL(ok.0(x1)) = x1   
POL(ok.1(x1)) = x1   
POL(proper.0(x1)) = x1   
POL(proper.1(x1)) = x1   



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
                                  ↳ QDP
                                    ↳ SemLabProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ QDP
                                            ↳ RuleRemovalProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ QDP
                                                    ↳ RuleRemovalProof
QDP
                                                        ↳ UsableRulesReductionPairsProof

Q DP problem:
The TRS P consists of the following rules:

TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))

The TRS R consists of the following rules:

active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
f.0-1(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
f.1-1(ok.1(X1), ok.1(X2)) → ok.0(f.1-1(X1, X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))
f.1-0(ok.1(X1), ok.0(X2)) → ok.0(f.1-0(X1, X2))
proper.0(f.1-0(X1, X2)) → f.1-0(proper.1(X1), proper.0(X2))
proper.0(f.1-1(X1, X2)) → f.1-1(proper.1(X1), proper.1(X2))
proper.0(a.) → ok.0(a.)
proper.0(f.0-1(X1, X2)) → f.0-1(proper.0(X1), proper.1(X2))
proper.0(f.0-0(X1, X2)) → f.0-0(proper.0(X1), proper.0(X2))
proper.1(b.) → ok.1(b.)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [15] with a polynomial ordering [25], all dependency pairs and the corresponding usable rules [17] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

No dependency pairs are removed.

The following rules are removed from R:

f.0-1(ok.0(X1), ok.1(X2)) → ok.0(f.0-1(X1, X2))
Used ordering: POLO with Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(active.0(x1)) = x1   
POL(f.0-0(x1, x2)) = x1 + x2   
POL(f.0-1(x1, x2)) = x1 + x2   
POL(mark.0(x1)) = x1   
POL(ok.0(x1)) = x1   
POL(ok.1(x1)) = x1   



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
                                  ↳ QDP
                                    ↳ SemLabProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ QDP
                                            ↳ RuleRemovalProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ QDP
                                                    ↳ RuleRemovalProof
                                                      ↳ QDP
                                                        ↳ UsableRulesReductionPairsProof
QDP
                                                            ↳ RuleRemovalProof

Q DP problem:
The TRS P consists of the following rules:

TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))

The TRS R consists of the following rules:

active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))
f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

TOP.0(ok.0(f.0-1(x0, x1))) → TOP.0(f.0-1(active.0(x0), x1))
TOP.0(ok.0(f.0-0(x0, x1))) → TOP.0(f.0-0(active.0(x0), x1))

Strictly oriented rules of the TRS R:

f.0-0(ok.0(X1), ok.0(X2)) → ok.0(f.0-0(X1, X2))

Used ordering: POLO with Polynomial interpretation [25]:

POL(TOP.0(x1)) = x1   
POL(active.0(x1)) = x1   
POL(f.0-0(x1, x2)) = x1 + x2   
POL(f.0-1(x1, x2)) = x1 + x2   
POL(mark.0(x1)) = x1   
POL(ok.0(x1)) = 1 + x1   



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ AND
          ↳ QDP
          ↳ QDP
          ↳ QDP
          ↳ QDP
            ↳ UsableRulesProof
              ↳ QDP
                ↳ Narrowing
                  ↳ QDP
                    ↳ DependencyGraphProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ SemLabProof
                                ↳ SemLabProof2
                                  ↳ QDP
                                    ↳ SemLabProof
                                      ↳ QDP
                                        ↳ UsableRulesReductionPairsProof
                                          ↳ QDP
                                            ↳ RuleRemovalProof
                                              ↳ QDP
                                                ↳ RuleRemovalProof
                                                  ↳ QDP
                                                    ↳ RuleRemovalProof
                                                      ↳ QDP
                                                        ↳ UsableRulesReductionPairsProof
                                                          ↳ QDP
                                                            ↳ RuleRemovalProof
QDP
                                                                ↳ PisEmptyProof

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active.0(f.0-0(X1, X2)) → f.0-0(active.0(X1), X2)
active.0(f.0-1(X1, X2)) → f.0-1(active.0(X1), X2)
f.0-1(mark.0(X1), X2) → mark.0(f.0-1(X1, X2))
f.0-0(mark.0(X1), X2) → mark.0(f.0-0(X1, X2))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.